home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Communications / pcomm / Readme.txt < prev    next >
Text File  |  1995-06-12  |  10KB  |  271 lines

  1.  
  2.                   Pcomm
  3.               A Unix Telecommunication Program
  4.  
  5. Things to do first:
  6.  
  7.     1) Figure out what files you need.  There is a shell archive
  8.     called "Unixpc.shar" that contains additional (and replacement)
  9.     files for users of the AT&T Unix PC 7300/3b1.
  10.  
  11.     2) Create a default directory where the Pcomm support files will
  12.     go.  A good location might be /usr/local/lib/pcomm.
  13.  
  14.     3) Copy (and rename to change the upper case 'P' to lower case)
  15.     the four sample support files Pcomm.dial_dir, Pcomm.extrnl,
  16.     Pcomm.modem, and Pcomm.param to the default directory.  The
  17.     files should *not* have write permission to all.  Please
  18.     remember these are just sample files...
  19.  
  20.     4) Copy (and rename to change the upper case letters to lower
  21.     case) the on-line manual pages Pcomm.1, Waitfor.1, Matches.1,
  22.     and Modem_break.1 to the proper /usr/man directory.  For those
  23.     without access to nroff, I've included the output files called
  24.     Pcomm.out, Waitfor.out, Matches.out, and Modem_break.ou in the
  25.     last shell archive.
  26.  
  27.     5) Print the Pcomm Reference Manual.  The Doc.nr file is the
  28.     nroff input which should be run thru tbl and the "me" macro
  29.     package, as in:
  30.  
  31.         tbl Doc.nr | nroff -me -Twhatever | lp
  32.  
  33.     For those without access to nroff, I've included the output file
  34.     called Doc.out in the last shell archive.
  35.  
  36. How to configure Pcomm:
  37.  
  38.     1) Edit the "config.h" file to suit your system's needs and your
  39.     personal taste.  Sites running HoneyDanBer (HDB) UUCP should pay
  40.     particular attention to the LOCK_DIR, ASCII_PID, and SETUGID
  41.     definitions.  The definitions in config.h are:
  42.  
  43.     BSD        Define if you're using a Berkeley flavor of Unix.
  44.             You will have to edit the Makefile in several
  45.             places.
  46.  
  47.     UNIXPC        If defined, use the dial(3) routines specific
  48.             to the AT&T Unix PC 7300/3b1.  Useful only if
  49.             the On Board Modem (OBM) is to be used.
  50.  
  51.     OLDCURSES    If defined, use the older version of curses(3).
  52.             (uses termcap in lieu of terminfo).
  53.  
  54.     SHAREDMEM    If defined, keeps the virtual screen area in
  55.             shared memory rather than in a file.
  56.  
  57.     NOPROMOTE    If defined, do not promote missing video
  58.             attributes to standout.  Normally, curses(3)
  59.             attempts to compensate for missing attributes.
  60.  
  61.     SETUGID        If defined, extra precautions are taken before
  62.             opening files or doing a shell escape to restore
  63.             the real UID/GID.  Useful if Pcomm is installed
  64.             as a set-user-id or get-group-id program.  HDB
  65.             programs often are set-user-id to uucp.
  66.  
  67.     LOG_CALLS    If defined, Pcomm will keep an administrative log
  68.             of all calls.  The log contains the name of the
  69.             person making the call, the phone number, and a
  70.             date/time stamp.  Useful for verifying long
  71.             distance phone bills.
  72.  
  73.     LOGFILE        The path to the log file (if LOG_CALLS is
  74.             defined).  It should have write permission to
  75.             all or be writeable under set-user/group-id
  76.             conditions.
  77.  
  78.     LIMIT_LD    If defined, Pcomm will limit long distance
  79.             (toll) calls to a privileged group.  The file
  80.             "admin.c" may require tweaking to detect long
  81.             distance numbers.
  82.  
  83.     GROUP_NAME    The name of the group that is allowed to make
  84.             long distance calls (if LIMIT_LD is defined).
  85.  
  86.     LPR        The path to the line printer program (this is
  87.             not the name of the device).
  88.  
  89.     LPRINT        The path to the "pretty" line printer program.
  90.             Typically a program that performs a "pr | lp"
  91.             function.  If none exist, use "pr | lp".
  92.  
  93.     DEFAULT_DIR    The path to the directory that contains the
  94.             default Pcomm support files.
  95.  
  96.     LOCK_DIR    The path to the directory where the UUCP lock
  97.             files are found.  On HDB systems this could
  98.             be /usr/spool/locks or /usr/spool/uucp.
  99.  
  100.     ASCII_PID    If defined, the lock files will contain an ASCII
  101.             encoded process id (PID).  On HDB systems this
  102.             is the default.
  103.  
  104.     XENIX_LOCKS    If defined, the last letter of the device name
  105.             is folded to lower case when creating the lock
  106.             file.  Newer version of XENIX may require this.
  107.  
  108.     SVR4_LOCKS    If defined, the new UUCP lockfile format
  109.             introduced in SVR4 will be used.
  110.  
  111.     KEEP_PORT    If defined, the port will be kept open between
  112.             dialing attempts to save time.  Some systems
  113.             may require the modem to be closed and reopened
  114.             every time.
  115.  
  116.     XMC_BROKE    Does the status line scroll up when using "magic
  117.             cookie" terminals?  Some Pyramid and AT&T
  118.             systems may require this to be defined.  Find a
  119.             magic cookie terminal (a Wyse 50 for example),
  120.             and see what happens.
  121.  
  122.     WGETCH_BROKE    Does the alarm() system call work correctly with
  123.             the wgetch() function?  Some Masscomp systems
  124.             will require this to be defined.  Symptom: the
  125.             initial screen doesn't go away by itself after 5
  126.             seconds.
  127.  
  128.     CLIST_SIZ    The size of the serial port character buffer.
  129.             The default is 64.
  130.  
  131.     INPUT_BUF    The size of the input buffer (should be about the
  132.             same size as CLIST_SIZ).  The default is 64.
  133.  
  134.     OUTPUT_BUF    The size of the output buffer (should be about
  135.             one half INPUT_BUF).  The default is 32.  Systems
  136.             without dedicated I/O processors may require a
  137.             very small INPUT_BUF value to avoid the problem
  138.             of a "choppy" display.
  139.  
  140.     MEMMOVE        The name of the memory copy routine (if none,
  141.             then use "#undef MEMMOVE").  The default is
  142.             "memmove", although quite a few versions of
  143.             "memcpy" will work (if they correctly handle
  144.             target and source overlap).
  145.  
  146.     SETUID_BROKE    Does your version of Unix allow you to flip-flop
  147.             back and forth between the real and effective
  148.             user (or group) ID?  Some Masscomp systems will
  149.             require this to be set.
  150.  
  151.     2) Edit the Makefile.  There are provisions in the Makefile to
  152.     include getcwd(3) and getopt(3) routines if they are missing
  153.     from your system.  You may want to customize the CFLAGS,
  154.     LDFLAGS, and BIN assignments to suit your needs.
  155.  
  156.     If compiling under Berkeley Unix, you will have to edit the
  157.     Makefile on the following lines:
  158.  
  159.         #for old curses(3) or Berkeley systems
  160.         CURSES = -lcurses -ltermcap
  161.         TERMLIB = -ltermcap
  162.         #CURSES = -lcurses
  163.         #TERMLIB = -lcurses
  164.  
  165.         #for System V or Berkeley worlds
  166.         BSD = -DBSD
  167.         TTY = tty_ucb.o
  168.         #BSD =
  169.         #TTY = tty_att.o
  170.  
  171.     All the defaults in config.h assume a AT&T flavor of Unix, sorry
  172.     about that...
  173.  
  174.     3) Compile pcomm and pcomm_input.  Type "make".  The "make
  175.     install" option will attempt to copy "pcomm" and "pcomm_input"
  176.     into the BIN directory given in the Makefile.  However, those
  177.     sites running HDB UUCP software may require that you to change
  178.     the mode of "pcomm" to be set-user-id to uucp.  DO NOT CHANGE
  179.     THE SET-UID/GID BITS ON THE "pcomm_input" PROGRAM.
  180.  
  181.     Three external programs (waitfor, matches, and modem_break) are
  182.     included in the distribution to help in creating auto-login
  183.     shell scripts.
  184.  
  185.     4) Update the sample modem/TTY database.  I know I'm asking the
  186.     impossible, but...  Read section 3 and the Appendices of the Doc
  187.     file first, then run Pcomm to update the modem/TTY database by
  188.     using the TTY Setup and the Modem Setup menues.  You will need
  189.     to know:
  190.  
  191.         o The types and number of modems available for dial out
  192.         o The TTY ports attached to the modems
  193.         o The range of baud rates at which the modems operate
  194.         o How to initialize the modems to suit Pcomm's needs
  195.         o How to make the modems dial
  196.  
  197.     During this step, you will need write permission on the support
  198.     files in the default directory.  RESIST THE TEMPTATION TO EDIT
  199.     THE SUPPORT FILES DIRECTLY.
  200.  
  201. Portability considerations:
  202.  
  203.     1) Pcomm makes use of the bold, blinking and standout video
  204.     attributes.  My concept of "standout" and "reverse" might be
  205.     different than yours (I like "standout" to be a brighter version
  206.     of "reverse").  Some very old versions of curses will ignore the
  207.     standout mode if you're on a magic cookie terminal.
  208.  
  209.     2) The "port.c" file has a place where you can include your own
  210.     routine to toggle the getty process on a port (if required).
  211.  
  212.     3) If you compile Pcomm with LOG_CALLS defined, you'll have to
  213.     look at the code in "admin.c" to see if the long distance
  214.     detection routine is correct for your site.
  215.  
  216.     4) Compilers that adhere to the ANSI C Standard will complain at
  217.     the declarations of perror(), malloc(), fread(), fwrite(), etc.
  218.     There is a "typedef SIG_TYPE" in the config.h file to help
  219.     silence the compiler's warning messages about the signal()
  220.     return value.
  221.  
  222. Notes for Sun users...  There are several problems that apparently only
  223. surface with SunOS.  Here are some notes to help out.
  224.  
  225.     1) Pcomm was really designed to work in an AT&T world.  If you
  226.     compile the code with the /usr/5bin/cc compiler, you'll end up
  227.     with a better product.  To do so, you'll need to use default
  228.     config.h parameters (undef OLDCURSES and undef BSD) plus the
  229.     default Makefile parameters (CURSES, TERMLIB, and TTY).
  230.  
  231.     2) Patch #5 introduced a new pre-processor definition in dial.c
  232.     called USLEEP.  SunOS no longer supports the AT&T version of the
  233.     times() system call, so usleep() should be used to generate the
  234.     delay.
  235.  
  236.     3) Some Sun users report that their version of curses (perhaps
  237.     limited to the sys5 version?) has a bug that henders the quick
  238.     transition between the "curses mode" and "terminal mode".  If
  239.     you have troubles with Pcomm getting out-of-sync after a file
  240.     transfer here is hack to bludgeon the code into submission.  I
  241.     have no idea why this works...
  242.  
  243.         change line 53 in terminal.c:
  244.             while (1) {
  245.                 read(0, &c, 1);
  246.                 c &= 0x7f;
  247.         to read:
  248.             while (1) {
  249.                 c = getch();
  250.                 c &= 0x7f;
  251.  
  252.     Please don't use this unless you're having a problem!
  253.  
  254. Note for some 4.2BSD and Ultrix 1.2 systems:
  255.  
  256.     Apparently, there is a bug in the /usr/include/curses.h file on
  257.     some systems that does not define the nl() and nonl() macros
  258.     correctly.  If this is the case with your system, edit
  259.     /usr/include/curses.h to include the following:
  260.  
  261.     #undef nl
  262.     #undef nonl
  263.     #define nl()    (_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty))
  264.     #define nonl()    (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty))
  265.  
  266. Emmet P. Gray                US Army, HQ III Corps & Fort Hood
  267. ...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  268. fthood!egray@uxc.cso.uiuc.edu        Directorate of Engineering & Housing
  269.                     Environmental Management Office
  270.                     Fort Hood, TX 76544-5057
  271.